<?php
session_start();

// 创建图片
$image = imagecreatetruecolor(100, 40);

// 设置背景色
$bg_color = imagecolorallocate($image, 245, 245, 245);
imagefill($image, 0, 0, $bg_color);

// 添加干扰线
for($i = 0; $i < 5; $i++) {
    $line_color = imagecolorallocate($image, rand(150,255), rand(150,255), rand(150,255));
    imageline($image, rand(0,100), rand(0,40), rand(0,100), rand(0,40), $line_color);
}

// 添加干扰点
for($i = 0; $i < 50; $i++) {
    $pixel_color = imagecolorallocate($image, rand(100,255), rand(100,255), rand(100,255));
    imagesetpixel($image, rand(0,100), rand(0,40), $pixel_color);
}

// 生成随机验证码
$code = '';
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';  // 只使用数字和大写字母
for($i = 0; $i < 4; $i++) {
    $code .= $characters[rand(0, strlen($characters) - 1)];
}

// 将验证码保存到session
$_SESSION['captcha_code'] = strtolower($code);

// 将验证码写入图片
$text_color = imagecolorallocate($image, 30, 144, 255);

// 使用内置字体，不依赖外部字体文件
$font_size = 5;  // 使用内置字体大小 1-5
$x = 25;
for($i = 0; $i < strlen($code); $i++) {
    $y = rand(15, 25);  // 随机上下位置
    imagechar($image, $font_size, $x, $y, $code[$i], $text_color);
    $x += 15;  // 每个字符的间距
}

// 输出图片
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image); 